<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    /*
      判断是否完美数  
      完美数 一个数 == 因数和 
    */

    /**
      求完美数: checkPerfect
      参数： num 输入需要判断的数
      结果：返回trueorfalse 
          true该数为完美数
          fasle 该数不是完美数
    */
    function checkPerfect(num) {
      // num 1  肯定不是完美数 
      if (num === 1) {
        return fasle;
      }
      // 因数 肯定会有一个 1
      let sum = 1;

      // for  完美因子都是成对出现只需要循环判断到平方就行
      let sqt = Math.sqrt(num);
      for (var i = 2; i < sqt; i++) {
        if (num % i === 0) {
          sum += i;
          sum += num / i;
        }
        // 循环中会加两次i 只加一次就行
        if (i * i === num) {
          sum += i;
        }
      }
      return sum === num;
    }
    var num = parseInt(prompt('请输入一个整数', '6'));
    var flag = checkPerfect(num);
    alert(flag);
  </script>
</body>

</html>